<?php
namespace july\julyadmin\taglib;

use think\template\TagLib;

class Test extends TagLib
{

    /**
     * 定义标签列表
     */
    protected $tags = [
        // 标签定义： attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
        "close" => ["attr" => "time,format", "close" => 0], //闭合标签，默认为不闭合
        "open"  => ["attr" => "name,type", "close" => 1]
    ];

    /**
     * 这是一个闭合标签的简单演示
     * 模板中调用方式
     * {test:close time="1703035940" format="Y-m-d H:i:s"}
     */
    public function tagClose($tag)
    {
        $format = !isset($tag["format"]) ? "Y-m-d H:i:s" : $tag["format"];
        $time   = !isset($tag["time"]) ? time() : $tag["time"];
        return date($format, $time);
    }

    /**
     * 这是一个非闭合标签的简单演示
     * 模板中调用方式
     * {test:open name="v"}
     *   {$v}
     * {/test:open}
     */
    public function tagOpen($tag, $content)
    {
        $name  = $tag["name"]; // name是必填项，这里不做判断了
        $parse =<<<EOT
            <?php
                \$test_arr = [2, 4, 6, 8, 10];
                \$__LIST__ = \$test_arr;
            ?>

            {volist name="\$__LIST__" id="{$name}"}
                {$content}
            {/volist}
EOT;
        return $parse;
    }
}
